Computer data merging system



Aug. 2, 1,960 M. .1. MENDELSON ETAI- 2,947,976

COMPUTER DATA MERGING SYSTEM Filed May 19, 1955 19 sheets-sheet 1 5 frag/f fr; j, IV .u f

ggf/f@ 19 Sheets-Sheet 2 4/./r.r.r

| 4 /aolafOaooolO camu/10 Canina/1J M. J. MENDELSON ETAL COMPUTER DATA MERGING SYSTEM Aug. 2, 1960 Filed May 19, 1955 l l i l... In

'as' l 04 In: Z

I an f Av/MJ /n l! r/f f il .Il 3 0.1 Il. 4 (0 la l VM@ zo ax Jafar a! I! 10011 .MW @a fz affff mn oa aa 11111 f. 2 6 7 u e a.. d# #d mamma /mw ik f, X 44 Aug. 2, 1960 M. J. MENDELsoN EVAL 2.947.976

COMPUTER DATA MERGING SYSTEM Filed May 19, 1955 19 Sheets-Sheet 3 Aug. 2, 1960 M. J. MENDELsoN ETAI- 2,947,975

CMPUTER DATA MERGING SYSTEM Filed may 19, 1955 19 sheets-sheet 4 All@ 2, 1960 M. MENDELsoN ErAL 2,947,976

COMPUTER DATA MERGING SYSTEM Aug. 2, 1960 M. J. MENDELsoN ETAL 2,947,975

COMPUTER DATA MERGING SYSTEM 19 Sheets-Sheet 6 Filed May 19, 1955 IIN NQ N F p Q hmm usw mw. www RW Au@ 2, 1960 M. .1. MENDELSON ErAL 2,947,976

COMPUTER DATA MERGING SYSTEM 19 Sheets-Sheet 7 Filed May 19, 1955 wwmmm,

Aug. 2, 1960 M. J. MENDELsoN ETAI- 2,947,976

COMPUTER DATA MERGING SYSTEM 19 Sheets-Sheet 8 Filed May 19, 1955 Aug. 2, 1960 M. MENDELsoN ETAI- 2.947.976

COMPUTER DATA MERGING SYSTEM 19 Sheets-Sheet 9 Filed May 19, 1955 Aug. 2, 1960 M. .1. MENDELsoN ETAI- 2,947,976

COMPUTER DATA MERGING SYSTEM 19 Sheets-Sheet 10 Filed May 19, 1955 COMPUTER DATA MERGING SYSTEM Filed May 19, 1955 19 Sheets-Sheet 11 F f7 (ruga/f :han /r0 7o@ (nay/f ab. 10701) @Map/e Mau 114775) WHHHHHIHIHHHHHHIWH l +55 2%@ pas avana oo 1! 111i! 00u00 (truly/a rino 1:1574) ran/vnf: n/arelda! a1 1 o oo f a o a .r l l (la E ryu/er) [All/INTO@ ff Jfyran I Afan/1h00 Aug. 2, 1960 M. .1. MENDELsoN ETAL 2,947,975

COMPUTER DATA MERGING SYSTEM Filed May 19. 1955 19 Sheets-Sheet 12 .Pfff

d* i l t "341,42* 3,4045 #5.447 in/rra WHHH Aug. 2, 1960 M. J. MENDELSON Erm. 2,947,976

COMPUTER DATA MERGING SYSTEM 19 Sheets-Sheet 13 Filed May 19, 1955 Aug. 2, 1960 M. J. MENDELsoN l--AL 2,947,976

COMPUTER DATA MERGING SYSTEM 19 Sheets-Sheet 14 Filed May 19, 1955 m. HWS

SMNNJ.

In w| Aug. 2, 1960 M. J. MENDELsoN ETAL 2,947,975

COMPUTER DATA MERGING SYSTEM @5MM will;

d Ilfv.

riff',

fili Aug. 2, 1960 M. .1. MENDELsoN ETAL 2,947,976

COMPUTER DATA MERGING SYSTEM med May 19, 1955 19 sheets-sheet 1s 1f- 1l 4,/ c 551 15, 9,5 o?

Aug. 2, 196() M. J. MENDELSON EVAL COMPUTER DATA MERGING SYSTEM Filed May 19, 1955 19 Sheets-'Sheetv 17 if 4,., .557 02 d f @It 5.570,6

JWM

Doff, fr.

cuve/M M. J. MENDELSON ETAI- COMPUTER DATA MERGING SYSTEM @-960,4 all 'i a (#155 .a/95s l Aug. 2, 1960 Filed May 19, 1955 lQTaW..

Ta LT@ an Aug- 2, 1960 M. J. MENDl-:LsoN ETAL 2,947,976

COMPUTER DATA MERGING SYSTEM Filed May 19, 1955 19 Sheets-Sheet 19 Fd?. JZ

United States Patent COMPUTER DATA MERGING SYSTEM Myron J. Mandelson, Los Angeles, and Alfred Doig, Jr., Culver City, Calif., and Richard E. Sprague, New Canaan, Conn., assignors to The National Cash Regste Company, Dayton, Ohio, a corporation of Mary- Filed May 19, 195s, ser. No. 509,475

1s Claims. (c1. 340-174) This invention relates to means for merging sorted groups of entries in the cyclical memory of a digital computer and more particularly to means integral with the computer to determine the relative magnitude of such entries and to arrange them in order of magnitude in a single group in the memory.

In accounting operations, groups of items of information, each item comprising data referring to a specific business transaction, are often required to be sorted in accordance with one datum in the items. Where a digital computer is employed to handle the items, they are programmed as entries into the memory of the computer in successive storage registers in accordance with the sequence in which they are received. Where, for example, two groups of entries are received by the computer at diiierent times, upon completion of the sorting operation, each sorted group may occupy successive storage registers in a separate channel in the memory. It is frequently desired that the sorted groups be merged to form a third sorted group situated in the memory in a channel or, if required, in a plurality of sequential channels.

It has heretofore been known that entries of this type could be merged by means of equipment external to the computer. Such equipment requires that the entries be read out of the computer and encoded, for example, on a tape to be used as a basis for the merging operation. The tape is inserted into the merging equipment which, through its operation, produces another tape with the entries merged in sorted sequence. Quite often this system requires considerable production and processing of intermediate tapes involving time and expense and subject to error by operating personnel.

Accordingly, the present invention eliminates the need for merging equipment external to the computer by providing a system which is an integral part of the computer. Broadly, this system presumes that the entries of each of two groups are located preferably in separate memory channels and access to the entries may be made by reference to a previously conducted sort such as described in a co-pending application entitled Computer Sorting System, Mendelson et al., Serial No. 487,172, led January 21, 1955 and nowr abandoned. In other words, the entries may be read from a channel in sequence of magnitude of the relevant sorting datum, with the entry containing the smallest sorting datum first. The system comprises means to determine the magnitude of the datum in an entry of one channel relative to the same datum of an entry in the other channel, and means to record the entry with smallest sorting datum in other channels of the computer memory. This process will hereinafter be referred to as a merge; and, as will be shown, one or a plurality of merges may be carried out by the computer in the form of a merge routine initiated by programming a merge command into the computer. Further, a merge operation will be defined as the process of merging two groups of sorted entries to form one ICC group, and thus may comprise a plurality of merge routines.

As is customary in programming a digital computer, the entries are each made to occupy the same number of successive storage registers of a memory channel, that is, an entry is herein defined as representing a serial array of binary coded information occupying one or a plurality of storage registers. Since a storage register can store a word, an entry can comprise one or a plurality of binary-coded computer words.

Briey, in the present invention, the word with the sorting datum (sort control word), which comprises a part of the tirst entry in a rst channel to be considered, is set up by the computer arithmetic unit in a one-word recirculating register by arranging the binary digits stored by the recirculating register to correspond to those of this sort control Word. A multi-word recirculating register is set up to contain the first entry in a second channel to be considered. An arrangement of networks in the arithmetic unit then compares the digits of these recirculating registers. The comparisons are made only for those digit positions of the words which are occupied by the sorting datum. A tirst Hip-flop circuit is set to indicate the results of this comparison.

If the Hip-flop circuit indicates that the sorting datum in the multi-word recirculating register is the smaller in magnitude, the entry therein is read back into a third channel of the memory, with the original sequence of words preserved.

If the flip-Hop circuit indicates that the sorting datum in the one-word recirculating register is the smaller in magnitude, the sort control word of the entry in the multiword recirculating register is transferred to the one-word register and the entry corresponding to the sort control word previously in the one-word register is set up in the multi-word recirculating register as it is in the memory. This entry is then read back into the third channel of the memory with the original sequence of Words preserved. A second Hip-flop circuit is set to indicate each time this type of transfer takes place between the two recirculating registers, thereby also indicating the origin of a recorded entry as the first or second channel.

If the first flip-flop circuit indicates that the two sets of sorting datum are equal in magnitude, the entry corresponding to the sort control word originally from either the tirst or second channel may be selected to be recorded back into the memory. Means are provided to select the same origin for every case of equality, thereby preserving any other sort already characterizing the entries, whether made with reference to the same sorting datum or to a different sorting datum. In the event the sort control Word of the entry to be recorded is set up in the one-word recirculating register, means are provided to transfer the sort control word in the multi-word recirculating register to the one-word recirculating register prior to routing the entry to be recorded into the multi-word recirculating register.

The preceding processes are repeated until an entry which has been merged by the merge routine is identied as the last in either the first or second channels or until the last recording address in the third channel has been used. It is noted in this connection that the last entry (or entries) of one of the channels may be omitted from the merge after one merge routine has been terminated. It should be obvious that these entries may be included in the final sequence of merged entries by, for example, programming the computer to sequentially transfer them to the third channel.

In this manner, extensive sorting operations can be facilitated by successive mergings of large groups of sorted information. For example, in an inventory record system for a large department store, four channels 

